home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 099 (1989-05-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 099 (1989-05-15)(Ossowski, Stefan)(DE)(PD).adf / PCQ / Runtime / readstring.asm < prev    next >
Assembly Source File  |  1989-03-31  |  785b  |  50 lines

  1.  
  2. *    ReadString.asm (of PCQ Pascal runtime library)
  3. *    Copyright (c) 1989 Patrick Quaid
  4.  
  5. *    This reads a string from a text file.
  6.  
  7.     SECTION    ONE
  8.  
  9.     XREF    _p%readonechar
  10.     XREF    _p%getthatchar
  11.     XREF    _p%readarbbuf
  12.     XREF    stdinbuffed
  13.  
  14.     XDEF    _p%readstring
  15. _p%readstring
  16.     move.l    (a0),a1
  17.     move.l    4(sp),a0
  18.     move.l    #0,d1
  19.     move.l    a0,d0
  20.     bne.s    readstringfile
  21. 1$    move.l    a1,-(sp)
  22.     jsr    _p%readonechar
  23.     bsr    _p%getthatchar
  24.     move.l    (sp)+,a1
  25.     move.b    d0,0(a1,d1.l)
  26.     addq.l    #1,d1
  27.     cmp.b    #10,d0
  28.     bne    1$
  29.     move.b    #0,-1(a1,d1.l)
  30.     move.b    #-1,stdinbuffed
  31.     rts
  32. readstringfile
  33. 1$    tst.b    12(a0)
  34.     bne.s    3$
  35.     move.b    4(a0),d0
  36.     move.b    d0,0(a1,d1.l)
  37.     addq.l    #1,d1
  38.     cmp.b    #10,d0
  39.     beq.s    2$
  40.     movem.l    d0-d1/a1,-(sp)
  41.     jsr    _p%readarbbuf
  42.     movem.l    (sp)+,d0-d1/a1
  43.     bra.s    1$
  44. 2$    move.b    #0,-1(a1,d1.l)
  45.     rts
  46. 3$    move.b    #0,0(a1,d1.l)
  47.     rts
  48.  
  49.     END
  50.